/*
Copyright [2023] [fuwen_soft]
*/
package vip.xiaonuo.modular.xyethnic.param;
import java.time.LocalDateTime;

import cn.afterturn.easypoi.excel.annotation.Excel;
import vip.xiaonuo.core.pojo.base.param.BaseParam;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.*;

/**
* 族员参数类
 *
 * @author yanwei
 * @date 2023-05-05 15:44:28
*/
@Data
@ApiModel("族员 查询条件")
public class XyEthnicParam extends BaseParam {

    /**
     * 
     */
    @NotNull(message = "不能为空，请检查id参数", groups = {edit.class, delete.class})
    @ApiModelProperty("")
    private String id;

    /**
     * 关联的族谱编号
     */
    @NotBlank(message = "关联的族谱编号不能为空，请检查logyId参数", groups = {add.class, edit.class,detail.class})
    @ApiModelProperty("族谱编号")
    private String logyId;

    /**
     * 姓氏
     */
    @NotBlank(message = "姓氏不能为空，请检查surname参数", groups = {add.class, edit.class})
    private String surname;

    /**
     * 名字
     */
    @NotBlank(message = "名字不能为空，请检查name参数", groups = {add.class, edit.class})
    private String name;

    /**
     * 常用名
     */
    @NotBlank(message = "常用名不能为空，请检查commName参数", groups = {add.class, edit.class})
    private String commName;

    /**
     * 排序，垂直排序
     */
    @NotNull(message = "排序，垂直排序不能为空，请检查sortList参数", groups = {add.class, edit.class})
    private Long sortList;

    /**
     * 关系
     */
    @NotBlank(message = "关系不能为空，请检查relationship参数", groups = {add.class, edit.class})
    private String relationship;

    /**
     * 真实关系，例如，兄妹,妻等。转义或的词条头衔
     */
    @NotBlank(message = "真实关系，例如，兄妹,妻等。转义或的词条头衔不能为空，请检查realRelationship参数", groups = {add.class, edit.class})
    private String realRelationship;

    /**
     * 性别,2=女，1=男
     */
    @NotNull(message = "性别,2=女，1=男不能为空，请检查genderSex参数", groups = {add.class, edit.class})
    private Long genderSex;

    /**
     * 排行
     */
    @NotBlank(message = "排行不能为空，请检查logySort参数", groups = {add.class, edit.class})
    private String logySort;

    /**
     * 出生日期(农历)
     */
    @NotBlank(message = "出生日期(农历)不能为空，请检查newDate参数", groups = {add.class, edit.class})
    private String newDate;

    /**
     * 1=公开，2=隐藏，出生日期隐藏
     */
    @NotNull(message = "1=公开，2=隐藏，出生日期隐藏不能为空，请检查newDatePri参数", groups = {add.class, edit.class})
    private Long newDatePri;

    /**
     * 用户是否在世,1=在世,2=不在世
     */
    @NotNull(message = "用户是否在世,1=在世,2=不在世不能为空，请检查existUser参数", groups = {add.class, edit.class})
    private Long existUser;

    /**
     * 绑定的用户,如果为null,可以邀请绑定，否则不可以
     */
    @NotBlank(message = "绑定的用户,如果为null,可以邀请绑定，否则不可以不能为空，请检查userId参数", groups = {add.class, edit.class})
    private String userId;

    /**
     * 绑定审核 0=无需审核,1=未审核，2=已审核，审核失败
     */
    @NotNull(message = "绑定审核 0=无需审核,1=未审核，2=已审核，审核失败不能为空，请检查bindFlag参数", groups = {add.class, edit.class})
    @ApiModelProperty("修改审核  不传为查询所有 1=未审核，2=已审核，3 审核失败不能为空")
    private Integer bindFlag;

    /**
     * 修改审核 0=无需审核,1=未审核，2=已审核，审核失败
     */
    @NotNull(message = "修改审核 0=无需审核,1=未审核，2=已审核，3 审核失败不能为空，请检查chageFlag参数", groups = {add.class, edit.class})
    @ApiModelProperty("修改审核  不传为查询所有 1=未审核，2=已审核，3 审核失败不能为空")
    private Integer chageFlag;

    /**
     * 层级，多少代
     */
    @NotNull(message = "层级，多少代不能为空，请检查levels参数", groups = {add.class, edit.class})
    private Integer levels;

    /**
     * 族父编号，默认为1始祖世
     */
    @NotBlank(message = "族父编号，默认为1始祖世不能为空，请检查parentId参数", groups = {add.class, edit.class})
    private String parentId;

    /**
     * 修改审核 0=无需审核,1=未审核，2=已审核，审核失败
     */
    @Excel(name = "如果为null 就是新数据，有值 就是绑定的展示数据")
    private String oldDataId;

}
